#pragma once            // 防止头文件被重复包含
#include <stdint.h>     // 包含整数类型的头文件

// 定义QMI8658C的I2C地址
#define QMI8658C传感器地址 0x6A

// 定义QMI8658C寄存器地址
enum qmi8658c_reg
{
    QMI8658C我是谁,
    QMI8658C版本号,
    QMI8658C控制1,
    QMI8658C控制2,
    QMI8658C控制3,
    QMI8658C控制4,
    QMI8658C控制5,
    QMI8658C控制6,
    QMI8658C控制7,
    QMI8658C控制8,
    QMI8658C控制9,
    QMI8658C控制1_L,
    QMI8658C控制1_H,
    QMI8658C控制2_L,
    QMI8658C控制2_H,
    QMI8658C控制3_L,
    QMI8658C控制3_H,
    QMI8658C控制4_L,
    QMI8658C控制4_H,
    QMI8658C_FIFO_WTM_TH,
    QMI8658C_FIFO_CTRL,
    QMI8658C_FIFO_SMPL_CNT,
    QMI8658C_FIFO_STATUS,
    QMI8658C_FIFO_DATA,
    QMI8658C_I2CM_STATUS = 44,
    QMI8658C中断,
    QMI8658C状态0,
    QMI8658C_状态1,
    QMI8658C时间戳低,
    QMI8658C时间戳中,
    QMI8658C时间戳高,
    QMI8658C_TEMP_L,
    QMI8658C_TEMP_H,
    QMI8658C_AX_L,
    QMI8658C_AX_H,
    QMI8658C_AY_L,
    QMI8658C_AY_H,
    QMI8658C_AZ_L,
    QMI8658C_AZ_H,
    QMI8658C_GX_L,
    QMI8658C_GX_H,
    QMI8658C_GY_L,
    QMI8658C_GY_H,
    QMI8658C_GZ_L,
    QMI8658C_GZ_H,
    QMI8658C_MX_L,
    QMI8658C_MX_H,
    QMI8658C_MY_L,
    QMI8658C_MY_H,
    QMI8658C_MZ_L,
    QMI8658C_MZ_H,
    QMI8658C_dQW_L = 73,
    QMI8658C_dQW_H,
    QMI8658C_dQX_L,
    QMI8658C_dQX_H,
    QMI8658C_dQY_L,
    QMI8658C_dQY_H,
    QMI8658C_dQZ_L,
    QMI8658C_dQZ_H,
    QMI8658C_dVX_L,
    QMI8658C_dVX_H,
    QMI8658C_dVY_L,
    QMI8658C_dVY_H,
    QMI8658C_dVZ_L,
    QMI8658C_dVZ_H,
    QMI8658C_AE_REG1,
    QMI8658C_AE_REG2,
    QMI8658C复位 = 96
};
// 定义QMI8658C数据结构体
typedef struct{
    int16_t 加速器y;
    int16_t 加速器x;
    int16_t 加速器z;
    int16_t 陀螺仪y;
    int16_t 陀螺仪x;
    int16_t 陀螺仪z;
    float 角度X;
    float 角度Y;
    float 角度Z;
}t_sQMI8658C;

void qmi8658c_init(void);                           // 初始化QMI8658C
void qmi8658c_fetch_angleFromAcc(t_sQMI8658C *p);   // 获取QMI8658C的角度